package com.sunday.boot3.user.center.controller;

import com.sunday.boot3.user.center.pojo.dto.user.*;
import com.sunday.common.core.remoting.base.page.PageResultDTO;
import com.sunday.common.core.remoting.base.response.Response;

/**
 * @Description: 用户表 Controller 层
 * @author: zsy
 * @Create: 2024/09/22 16:24:39
 */
public interface UserController {

    /**
     * 获取登录用户信息
     * @param
     * @return {@link Response< GetLoginUserResDTO>}
     */
    Response<GetLoginUserResDTO> getLoginUser();

    /**
     * 获取授权用户信息
     * @param getAuthUserReqDTO
     * @return {@link Response< GetAuthUserResDTO>}
     */
    Response<GetAuthUserResDTO> getAuthUser(GetAuthUserReqDTO getAuthUserReqDTO);

    /**
     * @Description: 新增 用户表 数据
     * @Param: [saveUserReqDTO]
     * @Return: com.sunday.common.core.remoting.base.response.Response
     * @Author: zsy
     * @Time: 2024/09/22 16:24:39
     */
    Response save(SaveUserReqDTO saveUserReqDTO);

    /**
     * @Description: 删除 用户表 数据
     * @Param: [removeUserReqDTO]
     * @Return: com.sunday.common.core.remoting.base.response.Response
     * @Author: zsy
     * @Time: 2024/09/22 16:24:39
     */
    Response remove(RemoveUserReqDTO removeUserReqDTO);

    /**
     * @Description: 修改 用户表 数据
     * @Param: [updateUserReqDTO]
     * @Return: com.sunday.common.core.remoting.base.response.Response
     * @Author: zsy
     * @Time: 2024/09/22 16:24:39
     */
    Response update(UpdateUserReqDTO updateUserReqDTO);

    /**
     * @Description: 获取 用户表 分页列表数据
     *
     * @Param: [pageUserReqDTO]
     * @Return: com.sunday.common.core.remoting.base.response.Response<com.sunday.common.core.remoting.base.page.PageResultDTO<com.sunday.boot3.user.center.pojo.dto.user.PageUserResDTO>>
     * @Author: zsy
     * @Time: 2024/09/22 16:24:39
     */
    Response<PageResultDTO<PageUserResDTO>> page(PageUserReqDTO pageUserReqDTO);

}
